package com.evil.common.file.constant;

import cn.hutool.core.util.StrUtil;
import com.evil.common.core.constant.AppConstant;

/**
 * @author liyang
 * @date 2022-08-08 00:00
 */
public interface OssConstant extends AppConstant {

    /**
     * 系统自动获取私密文件密钥
     */
    String SYSTEM_DEFAULT_SIGNATURE = "SYSTEM";

    /**
     * 文件私钥
     */
    String FILE_PRIVATE_KEY = SYSTEM_NAME_PREFIX + "file";

    /**
     * 文件密钥过期时间 分钟
     */
    int FILE_SIGNATURE_EXPIRATION_TIME = 30;

    /**
     * 文件大小 1MB
     **/
    Long FILE_SIZE_1MB = 1024 * 1024L;

    /**
     * 上传文件默认大小，单位MB
     **/
    Long UPLOAD_FILE_SIZE = OssConstant.FILE_SIZE_1MB * 200;

    /**
     * 头像上传大小
     */
    Long UPLOAD_USER_PORTRAIT_SIZE = OssConstant.FILE_SIZE_1MB * 5;

    /**
     * 文本类型
     */
    String UPLOAD_TXT_TYPE = "text/plain";

    /**
     * 头像上传类型
     */
    String UPLOAD_USER_PORTRAIT_TYPE = "image/jpeg,image/gif,image/png,image/bmp";

    /**
     * 视频类型
     */
    String UPLOAD_VIDEO_TYPE = "video/mp4,video/mp3,video/avi";

    /**
     * 音频类型
     */
    String UPLOAD_AUDIO_TYPE = "audio/*";

    /**
     * word内容类型
     */
    String WORD_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";

    /**
     * word文档类型
     */
    String UPLOAD_WORD_TYPE = StrUtil.join(StrUtil.COMMA, WORD_CONTENT_TYPE, "application/msword");

    /**
     * excel03内容类型
     */
    String EXCEL_03_CONTENT_TYPE = "application/vnd.ms-excel";

    /**
     * excel07内容类型
     */
    String EXCEL_07_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

    /**
     * excel文档类型
     */
    String UPLOAD_EXCEL_TYPE = StrUtil.join(StrUtil.COMMA, EXCEL_03_CONTENT_TYPE, EXCEL_07_CONTENT_TYPE, "application/x-xls, application/x-xlsx");

    /**
     * pdf内容类型
     */
    String PDF_CONTENT_TYPE = "application/pdf";

    /**
     * ppt内容类型
     */
    String PTT_CONTENT_TYPE = "application/vnd.ms-powerpoint";

    /**
     * zip文件
     */
    String ZIP_FILE_CONTENT_TYPE = "application/zip";

    /**
     * rar文件
     */
    String RAR_FILE_CONTENT_TYPE = "application/x-rar";

    /**
     * 其他文件
     */
    String FILE_CONTENT_TYPE = "application/octet-stream";

    /**
     * 上传文件已知限制类型
     **/
    String UPLOAD_ALLOW_MIME_TYPE = StrUtil.join(StrUtil.COMMA,
            UPLOAD_USER_PORTRAIT_TYPE,
            UPLOAD_VIDEO_TYPE,
            UPLOAD_AUDIO_TYPE,
            UPLOAD_TXT_TYPE,
            UPLOAD_WORD_TYPE,
            UPLOAD_EXCEL_TYPE,
            ZIP_FILE_CONTENT_TYPE,
            RAR_FILE_CONTENT_TYPE,
            FILE_CONTENT_TYPE,
            PDF_CONTENT_TYPE,
            PTT_CONTENT_TYPE);

    /**
     * 上传目录 基础目录（前不带/）
     */
    String UPLOAD_BASE_FOLDER = "evil";

    /**
     * 上传目录 私密类型（前不带/）
     **/
    String UPLOAD_FOLDER_PROTECT = "protect/resource";

    /**
     * 上传目录 公开类型（前不带/）
     **/
    String UPLOAD_FOLDER_PUBLIC = "public/resource";
}
